package com.justgame.project.service.art.service.basic;

import com.justgame.project.service.art.entity.ArtPageType;
import com.justgame.project.service.art.query.ArtPageTypeQuery;
import com.justgame.project.service.art.wrapper.ArtPageTypeWrapper;
import com.justgame.project.base.servcice.IBasicService;
import org.springframework.util.Assert;
import org.springframework.lang.NonNull;
import java.lang.String;

/**
 *
 * 文章类型表服务自定义查询类
 *
 * @@tableName art_page_type
 * @author Zwb
 */
@SuppressWarnings("all")
public interface BasicArtPageTypeService extends IBasicService<ArtPageTypeQuery,ArtPageType,ArtPageTypeWrapper> {

   /**
    * 新增创建
    * @param name 名称
    * @param otherName 别名
    * @param description 描述
    * @param imageUrl 图片
    * @param status 状态
    * @param remark 备注
    */
   default ArtPageType baseAdd(String name, String otherName, String description, String imageUrl, ArtPageType.Status status, String remark){
      ArtPageType artPageType = new ArtPageType();
      artPageType.setName(safeValue(name, null));
      artPageType.setOtherName(safeValue(otherName, null));
      artPageType.setDescription(safeValue(description, null));
      artPageType.setImageUrl(safeValue(imageUrl, null));
      artPageType.setStatus(safeValue(status, null));
      artPageType.setRemark(safeValue(remark, null));
      save(artPageType);
      return artPageType;
   }

   /**
    * 更新
    * @param name 名称
    * @param otherName 别名
    * @param description 描述
    * @param imageUrl 图片
    * @param status 状态
    * @param remark 备注
    */
   default boolean baseUpdate(@NonNull ArtPageType artPageType,String name, String otherName, String description, String imageUrl, ArtPageType.Status status, String remark){
      Assert.notNull(imageUrl,"必须提供图片");
      Assert.notNull(description,"必须提供描述");
      Assert.notNull(status,"必须提供状态");
      Assert.notNull(otherName,"必须提供别名");
      Assert.notNull(remark,"必须提供备注");
      Assert.notNull(name,"必须提供名称");
      Assert.notNull(artPageType.getId(),"必须提供主键ID");
      artPageType.setName(safeValue(name, null));
      artPageType.setOtherName(safeValue(otherName, null));
      artPageType.setDescription(safeValue(description, null));
      artPageType.setImageUrl(safeValue(imageUrl, null));
      artPageType.setStatus(safeValue(status, null));
      artPageType.setRemark(safeValue(remark, null));
      return updateById(artPageType);
   }

}